home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 21 / AACD 21.iso / AACD / Games / JST / sources / OSEmu / timer.s < prev    next >
Encoding:
Text File  |  2001-03-19  |  1.4 KB  |  82 lines

  1.  
  2. **************************************************************************
  3. *   TIMER.DEVICE FUCTIONS                                                *
  4. **************************************************************************
  5.  
  6. ; SubTime, untested, unconnected. Should work, but useless ATM
  7.  
  8. _SUBTIME:
  9.     move.l    (TV_SECS,A0),D0
  10.     move.l    (TV_MICRO,A0),D1
  11.  
  12.     sub.l    (TV_SECS,A1),D0    ; seconds
  13.     sub.l    (TV_MICRO,A1),D1    ; micros
  14.     bcc    .out
  15.     subq.l    #1,D0
  16.     add.l    #1000000,D1
  17. .out
  18.     move.l    D0,(TV_SECS,A0)
  19.     move.l    D1,(TV_MICRO,A0)
  20.     rts
  21.  
  22. _READECLOCK:
  23.     bsr    .readeclock
  24.  
  25.     move.l    #$AD303,D0    ; approx 716 KHz
  26.     rts
  27.  
  28. .readeclock:
  29.     MOVEM.L    D2-D5/A0/A2,-(A7)
  30.     MOVEQ    #$00,D0
  31.     MOVEQ    #$00,D2
  32.     MOVEQ    #$01,D5
  33.     MOVE.L    $00C0(A6),A2    ; ciaa.resource base
  34.     EXG    A6,A2        ; A2: exec
  35.     LEA    $00BFE001,A1
  36.     MOVE.L    $0024(A2),A0
  37.  
  38.     ; disable
  39.     MOVE.W    #$4000,$00DFF09A
  40.     ADDQ.B    #1,$0126(A0)
  41.     ;
  42.  
  43.     MOVE.B    $0700(A1),D3
  44.     MOVE.B    $0600(A1),D4
  45.     MOVE.B    $0700(A1),D2
  46.     JSRLIB    SetICR
  47.     BTST    #$01,D0
  48.     BEQ.B    LB_15F2
  49.     LEA    $00BFE001,A1
  50.     MOVE.B    $0700(A1),D3
  51.     MOVE.B    $0600(A1),D4
  52.     MOVE.B    $0700(A1),D2
  53.     MOVEQ    #$00,D5
  54. LB_15F2
  55.     MOVEM.L    $0048(A2),D0/D1
  56.     MOVE.L    $0024(A2),A0
  57.  
  58.     ; Enable()
  59.     SUBQ.B    #1,$0126(A0)
  60.     BGE.B    LB_160A
  61.     MOVE.W    #$C000,$00DFF09A
  62. LB_160A
  63.     ;
  64.  
  65.     MOVE.L    A2,A6
  66.     CMP.B    D3,D2
  67.     BEQ.B    LB_1612
  68.     MOVEQ    #-$01,D4
  69. LB_1612    LSL.W    #8,D2
  70.     MOVE.B    D4,D2
  71.     ADDQ.W    #1,D2
  72.     NEG.W    D2
  73.     TST.B    D5
  74.     BNE.B    LB_1626
  75.     ADD.L    #$00010000,D1
  76.     ADDX.L    D5,D0
  77. LB_1626    MOVE.W    D2,D1
  78.     MOVE.W    D5,A1
  79.     MOVEM.L    (A7)+,D2-D5/A0/A2
  80.     MOVEM.L    D0/D1,(A0)
  81.     RTS    
  82.